package com.lagou.firstStageThirdModel;

/**
 * 编程获取两个指定字符串中的最大相同子串。
 * 如：s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd"
 * 提示： 将短的那个串进行长度依次递减的子串与较长的串比较。
 */
public class Second {
    public static void main(String[] args) {
        String s1 = "asdafghjka";
        String s2 = "aaasdfg";

        /**
         * 第一次 判断s1是否包含整个s2
         * 第二次 拆分s2的子串 "aaasdf" "aasdfg"
         * 第三次 拆分s2的子串 "aaasd" "aasdf" "asdfg"
         * 第四次 拆分s2的子串 "aaas" "aasd" "asdf" "sdfg"
         * 以此类推
         */

        int length2 = s2.length();

        String sub;

        f : for (int i = 0; i < length2; i++) {
            for (int m = 0,n = length2 - i; n <= length2; m++,n++) {
                // 截取短字符串的子字符串
                sub = s2.substring(m, n);
                if (s1.contains(sub)) {
                    System.out.println("最大子串为：" + sub);
                    break f;
                }
            }
        }
    }
}
